class SemiPatchedGrpcLiason: GrpcLiaison{
    [Flags]
    public enum M {              // mock
        None      = 0b_0000_0000,
        F2 = 0b_0000_0100,
        F4 = 0b_0001_0000,
        V1 = F2 | F4
    }
    I01Backable mk;
    M f = M.V1;
    public SemiPatchedGrpcLiason(string url="http://192.168.1.181:50052",
                                 SemiPatchedGrpcLiason.M f0 = M.V1): base(url) {
        this.f = f0;
        this.mk = new I01Backable.Mock();
        S.LogDebug("⚙️ SemiPatchedGrpcLiason initialized with mock methods");
    }

    // mock some of the methods to return semi-patched data
    public override async Task<C02_NetworkSetup> F2_GetCommonNetworkSetup(C01_TextSoW i){
        if ((this.f & M.F2) == M.F2) {
            return await this.mk.F2_GetCommonNetworkSetup(i);
        }
        return await base.F2_GetCommonNetworkSetup(i);
    }

    // 🦜 : <2025-08-05 Tue>: unmock F2
    public override async Task<C05_TestResult> F4_RunAndGetLog(C04_TestScript s, C02_NetworkSetup n){
        if ((this.f & M.F4) == M.F4) {
            return await this.mk.F4_RunAndGetLog(s, n);
        }
        return await base.F4_RunAndGetLog(s, n);
    }
}
